Network adapters provide the interface between a computer network and the various individual computer systems (“stations”) that are in the network. They often take the form of removable cards located in the chasses of the computer systems themselves.
Network adapters have a network interface that couples to a physical transport medium that carries data through the network. Common physical transport media in today's networks include analog telephone lines (in which case, the network adapter is called a “modem”), Integrated Services Digital Network (“ISDN”) lines, High-level Data Link Control (“HDLC”) bit-serial lines, International Standards Organization (“ISO”) X.25 signaling lines, Ethernet® lines and Synchronous Optical Network/Synchronous Digital Hierarchy (“SONET/SDH”) optical fibers.
Network adapters also have a bus interface that couples to a bus in the computer system. Many bus standards are in use today, but some of the more popular ones are Peripheral Card Interconnect (“PCI”), Small Computer Systems Interface (“SCSI”) and Universal Serial Bus (“USB”).
Interposed between the network interface and the bus interface is a buffer. Rarely are the computer network and the computer system able to communicate at the same rate. The buffer holds data temporarily as it is being moved between the network interface and the bus interface to ensure that the faster of the two has a place to put its data until the slower of the two catches up.
Finally, network adapters include a processor that governs the flow of data between the network interface, the buffer and the bus interface. The processor further manipulates the data in the buffer to ensure that it is in the proper form for transmission to its next destination.
With respect to computer networks, the “form” of the data (henceforth to be called “payload” for clarity's sake) is defined in terms of the protocol stack in which the payload is encapsulated. Stacking is an organizational concept that allows various tasks required to be performed to transmit the payload through the computer network to be spread among different layers that constitute the stack. The Open Systems Interconnection (“OSI”) reference model sets forth an idealized seven layer protocol stack consisting of (1) a physical layer (the actual physical medium that carries the payload, such as Ethernet®), (2) a datalink layer (responsible for ensuring that the payload is not reduced to nonsense as it is transmitted over the physical medium), (3) a network layer (responsible for ensuring that the payload is properly routed from source to destination through the computer network), (4) a transport layer (concerned with keeping the payload intact so it can be reconstructed at its destination), (5) a session layer (employed most commonly in local area networks to manage contention for the same resource between two computer systems), (6) a presentation layer (that controls how the payload is presented) and (7) an application layer (that handles high-level tasks, such as file transfer, electronic mail and hypertext, a staple of the World Wide Web).
The Point to Point Protocol (“PPP”) is a widely-used datalink layer protocol standard for effecting dialup access to the Internet and is defined by Institute of Electrical and Electronic Engineers (“IEEE”) Requests for Comments (“RFCs”) 1661 and 1662 and applied to specific physical layers in RFCs 1598 (X.25), 1618 (ISDN) and 1619 (SONET/SDH). All of these RFCs are incorporated herein by reference. PPP is a multi-protocol framing mechanism that divides a payload into packets of negotiable size and is suitable for use over modems, HDLC bit-serial lines, SONET/SDH and other physical layers. Unlike HDLC, which is bit-oriented, PPP is character-oriented.
Protocols require that information be “attached” to, and transmitted through the computer network with, the payload and “detached” therefrom at the destination end. Since this necessarily adds overhead to communication of the payload, and since communication speed is of paramount concern in computer networks, minimizing protocol overhead without compromising the integrity of the payload remains an elusive goal in protocol design and management.
This goal is just as important in the area of network adapters, in which further optimization with respect to PPP is possible. Accordingly, what is needed in the art is a way to reduce the overhead PPP imposes on a computer network.